package com.zww.system.manager.dao;

import com.zww.system.manager.domain.Student;

public class StudentDao {
    /*
    * 访问存储数据的数组，进行增删改查(库管)
    * */
    /*
    * 创建学生对象数组
    * */
    private static Student[] stus = new Student[5];

    /*
    * 使用静态代码块 初始化一些学生信息
    */
    static{
        Student stu1 = new Student("1","赵卫文","26","1995-10-13");
        Student stu2 = new Student("2","文非","25","1996-10-13");
        stus[0]=stu1;
        stus[1]=stu2;
    }

    /*
    * 添加学生方法
    * */
    public boolean addStudent(Student stu){
        // 添加学生到学生数组
        int index =-1;
        for (int i=0;i<stus.length;i++){
            Student student = stus[i];
            if (student==null){
                // 检索到数组的最后一个记录此时的索引
                index = i;
                break;
            }
        }
        // 判断学生数组是否溢出
        if (index==-1){
            return false;
        }else{
            // 学生数组未溢出，正常添加返回tue
            stus[index]=stu;
            return true;
        }
    }
    /*
    * 查看学生方法
    * */
    public Student[] findAllStudent(){
        return stus;
    }
    /*
    * 通过id删除学生信息
    * */
    public void deleteStudentById(String id){
        int index = getIndex(id);
        stus[index]=null;
    }
    /*
    * 根据id获取学生在数组中的索引
    * */
    public int getIndex(String id){
        int index = -1;
        for(int i=0;i<stus.length;i++){
            Student stu = stus[i];
            if(stu !=null && stu.getId().equals(id)){
                index=i;
                break;
            }
        }
        return index;
    }
    /*
    * 更新学生信息
    * */
    public void updateStudent(String updateId,Student newStu){
        // 1 查找updateId，在容器中的索引位置
        int index = getIndex(updateId);
        // 2 将改索引位置，使用新的学生替换
        stus[index]=newStu;
    }

}
